package nl.hu.vakantievibes.ui;

import java.util.ArrayList;
import java.util.Date;

import nl.hu.vakantievibes.client.ServerCall;
import nl.hu.vakantievibes.client.Systeem;
import nl.hu.vakantievibes.domain.Carpool;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.VerticalPanel;

public class MijnCarpools {
	VerticalPanel vp;
	HorizontalPanel hp, hp2;
	Label naamLabel2, naamLabel3, naamLabel4, naamLabel5, naamLabel6;
	Label lblEigenaar, lblReis, lblStatus;
	Label details;

	public MijnCarpools() {

	}

	public Panel createPage() {
		vp = new VerticalPanel();
		hp2 = new HorizontalPanel();
		naamLabel2 = new Label("Reis:");
		naamLabel2.addStyleName("labelstyle2a");
		naamLabel3 = new Label("Eigenaar:");
		naamLabel3.addStyleName("labelstyle2a");
		naamLabel5 = new Label("Status:");
		naamLabel5.addStyleName("labelstyle2a");

		hp2.add(naamLabel2);
		hp2.add(naamLabel3);
		hp2.add(naamLabel5);
		vp.add(hp2);

		getCarpools();
		return vp;
	}

	public void getCarpools(){	
		AsyncCallback<ArrayList<Carpool>> callback = new AsyncCallback<ArrayList<Carpool>>() {
			@Override
			public void onFailure(Throwable caught) {
				NotificationManager.get().createNotification("Er is een server fout opgetreden. De reizen konden niet worden opgehaald van de server.");
				GWT.log(caught.getMessage());
				caught.printStackTrace();
			}
			@Override
			public void onSuccess(ArrayList<Carpool> result) {
				if(result.size() == 0){
					NotificationManager.get().createNotification("Er zijn nog geen carpools uitnodigingen verstuurd.");
				}else{
					for(Carpool c : result){

						hp = new HorizontalPanel();			
						lblReis = new Label(c.getReis().getNaam());
						lblReis.addStyleName("labelstyle1");

						lblEigenaar = new Label(c.getEigenaar().getNaam());
						lblEigenaar.addStyleName("labelstyle1");

						lblStatus = new Label(c.getStatus());
						lblStatus.addStyleName("labelstyle1");

						hp.add(lblReis);
						hp.add(lblEigenaar);
						hp.add(lblStatus);
						vp.add(hp);
					}
				}
			}
		};
		new ServerCall().getAlleCarpoolsPas(Systeem.get().getGebruiker(), callback);
	}
}
